package cn.gok.staticProxy1;

/**
 当前类做TestServiceImpl类的代理，增强其功能

 代理模式的第一种方式：
    实现和委托类相同的接口，并且持有委托类对象
 */
public class TestServiceImplProxy implements TestService{

    private TestService service;

    public TestServiceImplProxy(TestService service){
        this.service = service;
    }


    @Override
    public void service1() {
        System.out.println("记录service1执行的日志。。。");
        //执行原始的功能
        service.service1();
    }

    @Override
    public void service2(int age) {
        if (age< 18 || age > 65){
            throw new RuntimeException("年龄不合法，年龄应在18~65之间，但是传入年龄值为：" +age);
        }
        //调用原始的功能
        service.service2(age);
    }

}
